import tensorflow as tf
import numpy as np 

a=tf.convert_to_tensor([1,2])
print('从列表中创建的张量:',a)
print('------------------------')
b=tf.convert_to_tensor(np.array([[1,2,3],[4,5,6]]))
print('从数组中创建的张量:\n',b)
print('------------------------')



print('创建全0的向量\n',tf.zeros([2]))
print('------------------------')
print('创建全1的向量\n',tf.ones([3]))
print('------------------------')
print('创建全0的2*2矩阵\n',tf.zeros([2,2]))
print('------------------------')
print('创建全1的3×2矩阵\n',tf.ones([3,2])) 
print('------------------')
a = tf.ones([2,3]) # 创建一个矩阵
print('一个与a形状相同且全为0的矩阵\n',tf.zeros_like(a)) 
print('------------------')
print('一个与a形状相同且全为0的矩阵\n',tf.zeros(a.shape))



a=tf.fill([3,4],99)
print(a)
#正态分布
a=tf.random.normal([2,2],mean=1,stddev=2)
print('创建均值 mean 为 1， 标准差 stddev 为 2 的正态分布:\n',a)
#均匀分布
a=tf.random.uniform([2,4],maxval=10)
print('创建区间为[0,10]的2*4矩阵\n',a)



x=tf.random.normal([4,12,12,3])
#print(x)
#print(x[0])
#print(x[0][1])
#print(x[0][1][2])
#print(x[2][1][0][1])
print(x[1,9,3])
print('---------------------------------')
x=tf.random.uniform([28,28],maxval=10,dtype=tf.int32)


#通过 tf.expand_dims(x, axis)可在指定的 axis 轴前可以插入一个新的维度
#增加维度
x=tf.expand_dims(x,axis=2)
print(x.shape)
print('---------------------------------')
x=tf.expand_dims(x,axis=0)
print(x.shape)
#删除维度
x=tf.squeeze(x,axis=0)
print('删除维度后的维度\n',x.shape)
x=tf.squeeze(x,axis=2)
print('删除维度后的维度\n',x.shape)

x = tf.random.uniform([1,28,28,1],maxval=10,dtype=tf.int32)
print('未做维度改变的维度：\n',x.shape)
print('----------------')
x=tf.squeeze(x) 
print('未指定axis参数的维度改变后的维度：\n',x.shape)


x = tf.random.normal([2,32,32,3])
print('未交换前的维度：\n',x.shape)
print('-----------------')
x=tf.transpose(x,perm=[0,3,1,2]) # 交换维度
print('交换后的维度：\n',x.shape)
